﻿using System;

namespace Genko.Model.Integration
{
	public abstract class AbstractMemberWriter : IMemberWriter
	{
		protected Member ownerMember = null;
	
		protected AbstractMemberWriter(Member ownerMember)
		{
			this.ownerMember = ownerMember;
		}

		public virtual Member OwnerMember
		{
			get { return this.ownerMember; }
		}

		public abstract IMemberWriter CreateWriter(Member ownerMember);

		public abstract void WriteMember();

		public abstract void WriteAttributes();

		public abstract void WriteMembers();
	}
}
